$(function () {
    layui.use(['form', 'layer', 'jquery','upload','laydate'],
        function () {
            $ = layui.jquery;
            let form = layui.form,
                layer = layui.layer,
                upload=layui.upload,
                laydate=layui.laydate;

            //自定义验证规则
            form.verify({
                newsTypeID:function (value){
                    if(value===''){
                        return '请选择类型';
                    }
                },
                title: function (value) {
                    if (value==='') {
                        return '请填写标题';
                    }
                }
                // pass: [/(.+){6,18}$/, '密码必须6到18位'],
                // repass: function (value) {
                //     if ($('#L_pass').val() != $('#L_repass').val()) {
                //         return '两次密码不一致';
                //     }
                // }
            });
            //执行一个laydate实例
            laydate.render({
                elem: '#date' //指定元素
            });
            //监听提交
            form.on('submit(update)',function (data) {
                    $.post({
                        url:'/admin/news/update',
                        dataType:'json',
                        data:data.field,
                        success:function (res){
                            if (res.code===0){
                                layer.alert("修改成功", {
                                        icon: 6
                                    },
                                    function () {
                                        //关闭当前frame
                                        xadmin.close();

                                        // 可以对父窗口进行刷新
                                        xadmin.father_reload();
                                    });
                            }
                            else {
                                layer.alert("修改失败",{
                                        icon: 7
                                    },
                                    function (){
                                        //关闭当前frame
                                        xadmin.close();
                                    })
                            }
                        }
                    })
                    return false;
                });
            //图片上传
            // let uploadInst = upload.render({
            //     elem: '#upload'
            //     , url: '/upload' //此处用的是第三方的 http 请求演示，实际使用时改成您自己的上传接口即可。
            //     , before: function (obj) {
            //         //预读本地文件示例，不支持ie8
            //         obj.preview(function (index, file, result) {
            //             $('#img').attr('src', result); //图片链接（base64）
            //         });
            //         layer.msg('上传中', {icon: 16, time: 0});
            //     }
            //     , done: function (res) {
            //         //如果上传失败
            //         if (res.code > 0) {
            //             return layer.msg('上传失败');
            //         }
            //         //上传成功的一些操作
            //         //……
            //         layer.msg('上传完毕', {icon: 1});
            //         $('#imageLocation').attr('value',res.data)
            //         $('#demoText').html(''); //置空上传失败的状态
            //     }
            //     , error: function () {
            //         //演示失败状态，并实现重传
            //         let demoText = $('#demoText');
            //         demoText.html('<span style="color: #FF5722;">上传失败</span> <a class="layui-btn layui-btn-xs demo-reload">重试</a>');
            //         demoText.find('.demo-reload').on('click', function () {
            //             uploadInst.upload();
            //         });
            //     }
            // });
        });
    //表格初始化
    let newsId=sessionStorage.getItem('newsId')
    $.post({
        url: '/admin/news/findById',
        data: 'id='+newsId,
        dataType: 'json',
        success:function (res){
            $('#id').attr('value',res.data.id)
            $('#title').attr('value',res.data.title)
            $('#date').attr('value',res.data.date)
            $('#content').val(res.data.content)
            $('#remark').attr('value',res.data.remark)
            init($('#content').val())
            initType(res.data.newsType.id);
        }
    })

})

function init(val){
    const { createEditor, createToolbar } = window.wangEditor

    const editorConfig = {
        placeholder: 'Type here...',
        MENU_CONF: {
            // 配置上传图片
            uploadImage: {

                //server必须要配置正确
                server: "/upload",

                maxFileSize: 4 * 1024 * 1024, // 1M
                // 最多可上传几个文件，默认为 100
                maxNumberOfFiles: 10,
                // 选择文件时的类型限制，默认为 ['image/*'] 。如不想限制，则设置为 []
                allowedFileTypes: [],
                // 自定义上传参数，例如传递验证的 token 等。参数会被添加到 formData 中，一起上传到服务端。
                fieldName: "file",
                meta: {
                    //官网中把token放到了这里，但是请求的时候会看不到token
                },
                headers: {
                    //所以token放这里
                    token: window.sessionStorage.token,
                },
                // 将 meta 拼接到 url 参数中，默认 false
                metaWithUrl: false,
                // 跨域是否传递 cookie ，默认为 false
                withCredentials: false,
                // 超时时间，默认为 10 秒
                timeout: 5 * 1000, // 5 秒
                customInsert(res, insertFn) {
                    // JS 语法
                    // res 即服务端的返回结果
                    // 从 res 中找到 url alt href ，然后插图图片
                    if (res.code > 0) {
                        return layui.layer.msg('上传失败')
                    }
                    insertFn(res.data);
                    layui.layer.msg('上传完毕', {icon: 1});
                },
            },
        },
        onChange(editor) {
            const html = editor.getHtml()
            $('#content').val(html)
            // 也可以同步到 <textarea>
        }
    }

    const editor = createEditor({
        selector: '#editor-container',
        html: val,
        config: editorConfig,
        mode: 'default', // or 'simple'
    })

    const toolbarConfig = {
        excludeKeys: ["group-video"]
    }

    const toolbar = createToolbar({
        editor,
        selector: '#toolbar-container',
        config: toolbarConfig,
        mode: 'default', // or 'simple'
    })
}

//初始化下拉菜单
function initType(val) {
    layui.use("form", function () {
        let form = layui.form;
        //动态显示下拉框并回显内容
        $.get({
            url: "/admin/newsType/findAll",
            dataType:'json',
            success(res){
                let data = res.data;
                let options = '';
                for (let i = 0; i < data.length; i++) {
                    if(data[i].enable===1)
                        options += '<option value="' + data[i].id + '">' + data[i].newsTypeName + '</option>';
                }
                let newsTypeID = $("#newsTypeID");
                newsTypeID.append(options);
                $('#newsTypeID').val(val)
                form.render();
            }
        });
        //动态显示发货方式下拉框并回显内容

    });
}